ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã®åž¯åå¹ å¶åŸ¡ã«ãããã©ãã£ãã¯ã·ã§ãŒãã³ã°ãæ¢ããŸããäžçäžã®ã¢ããªã±ãŒã·ã§ã³ããã©ãŒãã³ã¹ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæé©åããããã®å®è£ æŠç¥ãå©ç¹ããã¹ããã©ã¯ãã£ã¹ãåŠã³ãŸãã
ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã®ãã©ãã£ãã¯ã·ã§ãŒãã³ã°ïŒåž¯åå¹ å¶åŸ¡ã®å®è£
仿¥ã®ã°ããŒãã«ã«æ¥ç¶ãããäžçã§ã¯ãäžè²«æ§ã®ãã髿§èœãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããšãæãéèŠã§ããå€ãã®å ŽåããŠãŒã¶ãŒã®æåã®æ¥ç¹ãšãªãããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã¯ãŸããŸãè€éã«ãªãããã€ã¯ããµãŒãã¹ãAPIã®ãããã¯ãŒã¯ã«äŸåããŠããŸããããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã¯ããã®è€éãã管çããããã®åŒ·åãªãã©ãããã©ãŒã ãæäŸãããã©ãã£ãã¯ã·ã§ãŒãã³ã°ãªã©ã®æ©èœãå¯èœã«ããŸãããã®èšäºã§ã¯ãããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥å ã§ã®åž¯åå¹ å¶åŸ¡ã®å®è£ ã«ã€ããŠæãäžããã°ããŒãã«ãªèŠèŽè åãã«ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæé©åããããã®å©ç¹ã課é¡ãããã³å®è·µçãªæŠç¥ãæ¢ããŸãã
ãã©ãã£ãã¯ã·ã§ãŒãã³ã°ã®å¿ èŠæ§ãçè§£ãã
åŸæ¥ã®ãããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãã¢ããªã±ãŒã·ã§ã³å±€ã§ãã©ãã£ãã¯ã广çã«ç®¡çããããã®ç²åºŠãäžè¶³ããŠããããšããããããŸããããã«ããã以äžã®åé¡ãçºçããå¯èœæ§ããããŸãïŒ
- ããã©ãŒãã³ã¹ã®ããã«ããã¯ïŒé«åž¯åå¹ ã®ã¢ããªã±ãŒã·ã§ã³ãä»ã®éèŠãªãµãŒãã¹ãå§è¿«ããã·ã¹ãã å šäœã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
- 壿ªãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒèªã¿èŸŒã¿æéãé ããå¿çæ§ã®äœãã€ã³ã¿ãŒãã§ãŒã¹ã¯ãŠãŒã¶ãŒãèç«ãããããžãã¹ã®ææã«æªåœ±é¿ãäžããå¯èœæ§ããããŸãã
- ã»ãã¥ãªãã£ã®è匱æ§ïŒå¶åŸ¡ãããŠããªããã©ãã£ãã¯ã¯ãæªæã®ããæ»æè ããµãŒãã¹æåŠïŒDoSïŒæ»æãéå§ããããã«æªçšãããå¯èœæ§ããããŸãã
- éå¹çãªãªãœãŒã¹å©çšïŒãã©ãã£ãã¯ã®ããŒã¯æã«ã¯ãªãœãŒã¹ã®éå°ããããžã§ãã³ã°ã«ã€ãªãããã€ã³ãã©ã¹ãã©ã¯ãã£ã³ã¹ãã®ç¡é§é£ãã«ãªãå¯èœæ§ããããŸãã
ãã©ãã£ãã¯ã·ã§ãŒãã³ã°ã¯ããããã¯ãŒã¯ãã©ãã£ãã¯ã«å¯Ÿãããã现ããªå¶åŸ¡ãæäŸããããšã§ãããã®èª²é¡ã«å¯ŸåŠãã管çè ãéèŠãªãµãŒãã¹ãåªå ãã垯åå¹ ã®æ¶è²»ãå¶éããã·ã¹ãã å šäœã®å埩æ§ãåäžãããããšãå¯èœã«ããŸãã
ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ãšã¯ïŒ
ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã¯ãããã³ããšã³ããµãŒãã¹ãšãã®äŸåé¢ä¿éã®éä¿¡ã管çããããã«èšèšãããå°çšã®ã€ã³ãã©ã¹ãã©ã¯ãã£å±€ã§ããããã¯ãšã³ãã®ãã€ã¯ããµãŒãã¹ã«çŠç¹ãåœãŠãåŸæ¥ã®ãµãŒãã¹ã¡ãã·ã¥ãšã¯ç°ãªããããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã¯ãè€éãªããã³ããšã³ãã¢ãŒããã¯ãã£ã®ç®¡çãšããç¹æã®èª²é¡ã«ç¹åããŠå¯ŸåŠããŸãã
ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã®äž»ãªæ©èœã¯æ¬¡ã®ãšããã§ãïŒ
- ãã©ãã£ãã¯ç®¡çïŒã«ãŒãã£ã³ã°ãããŒããã©ã³ã·ã³ã°ããã©ãã£ãã¯ã·ã§ãŒãã³ã°ã
- å¯èŠ³æž¬æ§ïŒã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãç£èŠããããã®ã¡ããªã¯ã¹ããã¬ãŒã¹ããã®ã³ã°ã
- ã»ãã¥ãªãã£ïŒèªèšŒãèªå¯ãæå·åã
- å埩æ§ïŒãµãŒããããã¬ãŒãã³ã°ãå詊è¡ããªã·ãŒããã©ãŒã«ãã€ã³ãžã§ã¯ã·ã§ã³ã
ãããã¯ãŒã¯éä¿¡ã®è€éããæœè±¡åããããšã«ãããããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã¯ãéçºè ãæ©èœã®æ§ç¯ãšãŠãŒã¶ãŒãžã®äŸ¡å€æäŸã«éäžã§ããããã«ããŸãã
ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã«ããã垯åå¹ å¶åŸ¡ã®å©ç¹
ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥å ã«åž¯åå¹ å¶åŸ¡ãå®è£ ãããšãããã€ãã®å€§ããªå©ç¹ããããŸãïŒ
- ã¢ããªã±ãŒã·ã§ã³ããã©ãŒãã³ã¹ã®åäžïŒéèŠåºŠã®äœããµãŒãã¹ã§å©çšå¯èœãªåž¯åå¹ ãå¶éããããšã§ãéèŠãªããã³ããšã³ãã³ã³ããŒãã³ããå¹ççã«åäœããããã®ååãªãªãœãŒã¹ã確ä¿ã§ããŸããããã«ãããèªã¿èŸŒã¿æéã®ççž®ãããã¹ã ãŒãºãªã€ã³ã¿ã©ã¯ã·ã§ã³ããããŠæ¹åããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãå®çŸããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åŒ·åïŒããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãããã€ã³ã¿ã©ã¯ãã£ããªãã©ãã£ãã¯ãåªå ããããšã§ãç¹ã«åž¯åå¹ ãéãããŠããå°åã§ãå¿çæ§ãé«ãå¿«é©ãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãä¿èšŒããŸãã
- å埩æ§ã®åäžïŒåž¯åå¹ å¶åŸ¡ã¯ãåäžã®ãµãŒãã¹ãã·ã¹ãã ãå§åããã®ãé²ããå šäœçãªå®å®æ§ãšäºæãã¬ãã©ãã£ãã¯ã¹ãã€ã¯ãžã®èæ§ãåäžãããããšãã§ããŸãã
- ã€ã³ãã©ã¹ãã©ã¯ãã£ã³ã¹ãã®åæžïŒãªãœãŒã¹å©çšãæé©åããããšã§ã垯åå¹ å¶åŸ¡ã¯éå°ããããžã§ãã³ã°ã®å¿ èŠæ§ãæžãããå€§å¹ ãªã³ã¹ãåæžã«ã€ãªãããŸãã
- 管çã®ç°¡çŽ åïŒäžå åããããµãŒãã¹ã¡ãã·ã¥ã¯ããã©ãã£ãã¯ããªã·ãŒã管çããããã®åäžã®å¶åŸ¡ç¹ãæäŸããéçšãç°¡çŽ åããèšå®ãšã©ãŒã®ãªã¹ã¯ãäœæžããŸãã
- ã»ãã¥ãªãã£ã®åŒ·åïŒã¬ãŒãå¶éãå®è£ ããŠãç¹å®ã®IPã¢ãã¬ã¹ããŠãŒã¶ãŒããã®ãªã¯ãšã¹ãæ°ãå¶éããããšã«ããããµãŒãã¹æåŠïŒDoSïŒæ»æã軜æžã§ããŸãã
- A/Bãã¹ããšã«ããªã¢ãããã€ã¡ã³ãïŒA/Bãã¹ããã«ããªã¢ãããã€ã¡ã³ãã®ããã«ãããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã®ç°ãªãããŒãžã§ã³ã«å²ãåœãŠããã©ãã£ãã¯ãæ£ç¢ºã«å¶åŸ¡ãã管çãããå±éãšãªã¹ã¯è»œæžãå¯èœã«ããŸãã
垯åå¹ å¶åŸ¡ã®å®è£ æŠç¥
ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã§åž¯åå¹ å¶åŸ¡ãå®è£ ããããã«ãããã€ãã®æŠç¥ãæ¡çšã§ããŸãïŒ
1. ã¬ãŒãå¶é
ã¬ãŒãå¶éã¯ãç¹å®ã®æéæ å ã«ãµãŒãã¹ã«å¯ŸããŠè¡ãããªã¯ãšã¹ãã®æ°ãå¶éããŸããããã¯ããŸããŸãªã¬ãã«ã§å®è£ ã§ããŸãïŒ
- ã°ããŒãã«ã¬ãŒãå¶éïŒãœãŒã¹ã«é¢ä¿ãªãããµãŒãã¹ãžã®ãã¹ãŠã®ãªã¯ãšã¹ãã«é©çšãããŸãã
- ã¯ã©ã€ã¢ã³ãããšã®ã¬ãŒãå¶éïŒç¹å®ã®ã¯ã©ã€ã¢ã³ãïŒäŸïŒIPã¢ãã¬ã¹ããŠãŒã¶ãŒIDïŒããã®ãªã¯ãšã¹ãæ°ãå¶éããŸãã
- APIåºæã®ã¬ãŒãå¶éïŒç¹å®ã®APIãšã³ããã€ã³ãã«é©çšãããŸãã
äŸïŒç»åããŠã³ããŒããµãŒãã¹ãžã®ãªã¯ãšã¹ãæ°ãå¶éããŠãä¹±çšãé²ããå ¬æ£ãªäœ¿çšãä¿èšŒããã
å®è£ ïŒIstioãEnvoyãGloo Edgeãªã©ã®ææ°ã®ãµãŒãã¹ã¡ãã·ã¥ãœãªã¥ãŒã·ã§ã³ã¯ãã¬ãŒãå¶éã®çµã¿èŸŒã¿ãµããŒããæäŸããŠããŸãããããã®ãœãªã¥ãŒã·ã§ã³ã¯éåžžãã¬ãŒãå¶éãµãŒããŒïŒäŸïŒRedisãMemcachedïŒã䜿çšããŠãªã¯ãšã¹ãæ°ãä¿åããã³è¿œè·¡ããŸãã
Istioã®äŸïŒ`EnvoyFilter`ã䜿çšïŒïŒ
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: rate-limit-filter
spec:
configPatches:
- applyTo: HTTP_FILTER
match:
context: GATEWAY
listener:
filterChain:
filter:
name: "envoy.filters.network.http_connection_manager"
subFilter:
name: "envoy.filters.http.router"
patch:
operation: INSERT_BEFORE
value:
name: envoy.filters.http.ratelimit
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit
domain: frontend-domain
failure_mode_deny: true
rate_limit_service:
grpc_service:
envoy_grpc:
cluster_name: ratelimit_cluster
timeout: 0.2s
--- # Rate Limit Service Cluster
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: ratelimit-service
spec:
hosts:
- ratelimit.example.com # Replace with your ratelimit service hostname
ports:
- number: 8081 # Replace with your ratelimit service port
name: grpc
protocol: GRPC
resolution: DNS
location: MESH_EXTERNAL
ãã®äŸã§ã¯ãã¬ãŒãå¶éãµãŒãã¹ã䜿çšããŠã¬ãŒãå¶éãé©çšããããã«Envoyãã£ã«ã¿ãŒãæ§æããŸãã`domain`ã¯ã¬ãŒãå¶éãã¡ã€ã³ãæå®ããŸãããããæ©èœãããã«ã¯ãLyftã®ã¬ãŒãå¶éãµãŒãã¹ãªã©ã®å®è¡äžã®ã¬ãŒãå¶éãµãŒãã¹ãå¿ èŠã§ãã
2. å éã©ãŠã³ãããã³ïŒWRRïŒ
WRRã䜿çšãããšãäºåã«å®çŸ©ãããéã¿ã«åºã¥ããŠããµãŒãã¹ã®ç°ãªãããŒãžã§ã³ãç°ãªããµãŒãã¹ã€ã³ã¹ã¿ã³ã¹éã§ãã©ãã£ãã¯ã忣ã§ããŸããããã¯ãA/Bãã¹ããã«ããªã¢ãããã€ã¡ã³ãã«ç¹ã«åœ¹ç«ã¡ãŸãã
äŸïŒãã©ãã£ãã¯ã®90%ããµãŒãã¹ã®å®å®çã«ã10%ããã¹ãçšã®æ°ããŒãžã§ã³ã«æ¯ãåããã
å®è£ ïŒã»ãšãã©ã®ãµãŒãã¹ã¡ãã·ã¥ãœãªã¥ãŒã·ã§ã³ã¯ãWRRã®çµã¿èŸŒã¿ãµããŒããæäŸããŠããŸããèšå®ãã¡ã€ã«ãAPIã䜿çšããŠéã¿ãèšå®ã§ããŸãã
Istioã®äŸïŒ`VirtualService`ã䜿çšïŒïŒ
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-frontend-service
spec:
hosts:
- "my-frontend-service.example.com" # Replace with your service hostname
gateways:
- my-gateway # Replace with your gateway
http:
- route:
- destination:
host: my-frontend-service-v1 # Replace with your service v1 hostname
port:
number: 80
weight: 90
- destination:
host: my-frontend-service-v2 # Replace with your service v2 hostname
port:
number: 80
weight: 10
ãã®äŸã§ã¯ããã©ãã£ãã¯ã®90%ã`my-frontend-service-v1`ã«ã10%ã`my-frontend-service-v2`ã«ã«ãŒãã£ã³ã°ããŸãã
3. åªå 床ããŒã¹ã®ãã¥ãŒã€ã³ã°
åªå 床ããŒã¹ã®ãã¥ãŒã€ã³ã°ã¯ãç°ãªãã¿ã€ãã®ãã©ãã£ãã¯ã«ç°ãªãåªå 床ãå²ãåœãŠãéèŠåºŠã®äœããªã¯ãšã¹ããããéèŠãªãªã¯ãšã¹ããåªå ã§ããããã«ããŸããããã«ãããé«è² è·æã§ãé«åªå 床ã®ãã©ãã£ãã¯ãè¿ éã«åŠçãããããšãä¿èšŒãããŸãã
äŸïŒããã¯ã°ã©ãŠã³ãã®ããŒã¿åæã¿ã¹ã¯ãããã€ã³ã¿ã©ã¯ãã£ããªãŠãŒã¶ãŒãªã¯ãšã¹ããåªå ããã
å®è£ ïŒããã¯å€ãã®å ŽåããµãŒãã¹ã¡ãã·ã¥å ã§ã«ã¹ã¿ã å®è£ ãå¿ èŠã§ãããHTTPããããŒããŒã¹ã®ã«ãŒãã£ã³ã°ããµãŒãã¹å質ïŒQoSïŒããªã·ãŒãªã©ã®æ©èœã掻çšããŸãã
4. å°ççäœçœ®ã«åºã¥ããã©ãã£ãã¯ã·ã§ãŒãã³ã°ããªã·ãŒ
ãŠãŒã¶ãŒã®å°ççäœçœ®ã«åºã¥ããŠåž¯åå¹ ã®å²ãåœãŠã調æŽããŸããããã¯ãç°ãªãå°åã«ãããããŸããŸãªãããã¯ãŒã¯æ¡ä»¶ã垯åå¹ ã®å¶éã«å¯ŸåŠããããã«äžå¯æ¬ ã§ããããšãã°ãæ¢ç¥ã®åž¯åå¹ å¶çŽãããå°åã®ãŠãŒã¶ãŒã¯ãæé©åãããç»åãšåæžãããããŒã¿è»¢éã§äœåž¯åå¹ ã®ãšã¯ã¹ããªãšã³ã¹ãåãåããããããŸããããå ç¢ãªãããã¯ãŒã¯ãæã€å°åã®ãŠãŒã¶ãŒã¯å®å šãªå¿ å®åºŠã®ã¢ããªã±ãŒã·ã§ã³ãäœéšã§ããŸãã
äŸïŒãŠãŒã¶ãŒã®æ€åºãããå Žæã«åºã¥ããŠãç°ãªãç»åå§çž®ã¬ãã«ããããªè§£å床ãå®è£ ããã
å®è£ ïŒããã«ã¯ãå°çäœçœ®æ å ±ããŒã¿ïŒäŸïŒCDNãå°çšã®å°çäœçœ®æ å ±ãµãŒãã¹ããïŒããµãŒãã¹ã¡ãã·ã¥ã®ãã©ãã£ãã¯ã·ã§ãŒãã³ã°ããªã·ãŒã«çµ±åããå¿ èŠããããŸããHTTPããããŒããã®ä»ã®ã¡ã¿ããŒã¿ã䜿çšããŠãŠãŒã¶ãŒã®å Žæãç¹å®ããé©åãªãã©ãã£ãã¯ã·ã§ãŒãã³ã°ã«ãŒã«ãé©çšã§ããŸãã
é©åãªãµãŒãã¹ã¡ãã·ã¥ã®éžæ
ããã€ãã®ãµãŒãã¹ã¡ãã·ã¥ãœãªã¥ãŒã·ã§ã³ãå©çšå¯èœã§ãããããã«é·æãšçæããããŸãã人æ°ã®ãããªãã·ã§ã³ã«ã¯æ¬¡ã®ãããªãã®ããããŸãïŒ
- IstioïŒè±å¯ãªæ©èœã»ãããšåŒ·åãªã³ãã¥ããã£ãµããŒããåãããåºãæ¡çšãããŠãããªãŒãã³ãœãŒã¹ã®ãµãŒãã¹ã¡ãã·ã¥ã
- EnvoyïŒIstioãªã©ã®ãµãŒãã¹ã¡ãã·ã¥ã®ããŒã¿ãã¬ãŒã³ãšããŠãã䜿çšããã髿§èœãããã·ãã¹ã¿ã³ãã¢ãã³ãœãªã¥ãŒã·ã§ã³ãšããŠã䜿çšã§ããŸãã
- Gloo EdgeïŒEnvoyäžã«æ§ç¯ãããAPIã²ãŒããŠã§ã€ããã³ã€ã³ã°ã¬ã¹ã³ã³ãããŒã©ãŒã§ãé«åºŠãªãã©ãã£ãã¯ç®¡çããã³ã»ãã¥ãªãã£æ©èœãæäŸããŸãã
- Nginx Service MeshïŒãããã€ãšç®¡çãç°¡åãªè»œéã®ãµãŒãã¹ã¡ãã·ã¥ã
- LinkerdïŒã·ã³ãã«ããšããã©ãŒãã³ã¹ãéèŠããŠèšèšãããCNCF忥ãããžã§ã¯ãã
ãµãŒãã¹ã¡ãã·ã¥ãéžæããéã«ã¯ã次ã®èŠå ãèæ ®ããŠãã ããïŒ
- æ©èœïŒãµãŒãã¹ã¡ãã·ã¥ã¯ããã©ãã£ãã¯ã·ã§ãŒãã³ã°ãå¯èŠ³æž¬æ§ãã»ãã¥ãªãã£ãªã©ãå¿ èŠãªæ©èœãæäŸããŠããŸããïŒ
- ããã©ãŒãã³ã¹ïŒãµãŒãã¹ã¡ãã·ã¥ã®ããã©ãŒãã³ã¹ãªãŒããŒãããã¯ã©ã®ãããã§ããïŒ
- è€éãïŒãµãŒãã¹ã¡ãã·ã¥ã®ãããã€ãšç®¡çã¯ã©ã®ãããç°¡åã§ããïŒ
- ã³ãã¥ããã£ãµããŒãïŒãµããŒããšã¬ã€ãã³ã¹ãæäŸããããã®åŒ·åãªã³ãã¥ããã£ã¯ãããŸããïŒ
- çµ±åïŒæ¢åã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãšç°¡åã«çµ±åã§ããŸããïŒ
ã¢ãã¿ãªã³ã°ãšå¯èŠ³æž¬æ§
广çãªåž¯åå¹ å¶åŸ¡ã«ã¯ãå ç¢ãªã¢ãã¿ãªã³ã°ãšå¯èŠ³æž¬æ§ãå¿ èŠã§ãããã©ãã£ãã¯ãã¿ãŒã³ã远跡ããããã«ããã¯ãç¹å®ãããã©ãã£ãã¯ã·ã§ãŒãã³ã°ããªã·ãŒã®åœ±é¿ã枬å®ã§ããå¿ èŠããããŸãã
ç£èŠãã¹ãäž»èŠãªã¡ããªã¯ã¹ã¯æ¬¡ã®ãšããã§ãïŒ
- ãªã¯ãšã¹ãã¬ã€ãã³ã·ïŒãªã¯ãšã¹ãã®åŠçã«ãããæéã
- ãšã©ãŒçïŒå€±æãããªã¯ãšã¹ãã®å²åã
- ãã©ãã£ãã¯éïŒè»¢éãããããŒã¿éã
- CPUãšã¡ã¢ãªäœ¿çšçïŒãµãŒãã¹ã®ãªãœãŒã¹æ¶è²»éã
PrometheusãGrafanaãJaegerãªã©ã®ããŒã«ã䜿çšããŠããããã®ã¡ããªã¯ã¹ãåéããã³èŠèŠåã§ããŸãããµãŒãã¹ã¡ãã·ã¥ãœãªã¥ãŒã·ã§ã³ã¯ãå€ãã®å Žåãçµã¿èŸŒã¿ã®ããã·ã¥ããŒããšãããã®ããŒã«ãšã®çµ±åãæäŸããŸãã
å®è·µçãªäŸãšãŠãŒã¹ã±ãŒã¹
ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã§åž¯åå¹ å¶åŸ¡ãã©ã®ããã«äœ¿çšã§ããããããã€ãã®å®è·µçãªäŸãèããŠã¿ãŸãããïŒ
- Eã³ããŒã¹ãã©ãããã©ãŒã ïŒããŒã¯ã®ã·ã§ããã³ã°ã·ãŒãºã³äžã«ååã«ã¿ãã°ãšãã§ãã¯ã¢ãŠãããŒãžãžã®ãã©ãã£ãã¯ãåªå ããã¹ã ãŒãºã§ä¿¡é Œæ§ã®é«ãã·ã§ããã³ã°äœéšãä¿èšŒããŸããæ³šæåŠçãªã©ã®ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãžã®åž¯åå¹ ãå¶éããŠããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«åœ±é¿ãäžããªãããã«ããŸãã
- ã¹ããªãŒãã³ã°ãµãŒãã¹ïŒãŠãŒã¶ãŒã®ãããã¯ãŒã¯åž¯åå¹ ã«åºã¥ããŠã¢ãããã£ããããã¬ãŒãã¹ããªãŒãã³ã°ãå®è£ ããŸããé«åž¯åå¹ æ¥ç¶ã®ãŠãŒã¶ãŒã¯é«è§£å床ãããªãåä¿¡ããäœåž¯åå¹ æ¥ç¶ã®ãŠãŒã¶ãŒã¯äœè§£å床ãããªãåä¿¡ããŸãã
- ãœãŒã·ã£ã«ã¡ãã£ã¢ã¢ããªã±ãŒã·ã§ã³ïŒãŠãŒã¶ãŒãç¹å®ã®æéæ å ã«è¡ããAPIãªã¯ãšã¹ãã®æ°ãå¶éããŠãä¹±çšãé²ããå ¬æ£ãªäœ¿çšãä¿èšŒããŸããããŒã¿åæãªã©ã®ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ããããæçš¿ãã³ã¡ã³ããªã©ã®ã€ã³ã¿ã©ã¯ãã£ããªæ©èœãåªå ããŸãã
- ã²ãŒã ãã©ãããã©ãŒã ïŒãªã¢ã«ã¿ã€ã ã®ã²ãŒã ãã©ãã£ãã¯ãåªå ããŠã¬ã€ãã³ã·ãæå°éã«æããã¹ã ãŒãºã§å¿çæ§ã®é«ãã²ãŒã äœéšãä¿èšŒããŸããã²ãŒã ã®ããŠã³ããŒããæŽæ°ãªã©ã®ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãžã®åž¯åå¹ ãå¶éããŸãã
- ã°ããŒãã«ãã¥ãŒã¹ãŠã§ããµã€ãïŒãŠãŒã¶ãŒã®å°ççäœçœ®ãšãããã¯ãŒã¯æ¡ä»¶ã«åºã¥ããŠæé©åãããç»åãšåç»ãé ä¿¡ããŸããããšãã°ã垯åå¹ ãéãããŠããå°åã®ãŠãŒã¶ãŒã¯ãèªã¿èŸŒã¿æéãæ¹åããããã«ãããå°ãããäœè§£å床ã®ç»åãšåç»ãåä¿¡ã§ããŸãã
課é¡ãšèæ ®äºé
垯åå¹ å¶åŸ¡ã¯å€§ããªå©ç¹ããããããŸãããçæãã¹ãããã€ãã®èª²é¡ãšèæ ®äºé ããããŸãïŒ
- è€éãïŒãµãŒãã¹ã¡ãã·ã¥ã®å®è£ ãšç®¡çã¯è€éã§ãããå°éçãªã¹ãã«ãšå°éç¥èãå¿ èŠã§ãã
- ããã©ãŒãã³ã¹ãªãŒããŒãããïŒãµãŒãã¹ã¡ãã·ã¥ã¯ããã©ãŒãã³ã¹ãªãŒããŒããããåŒãèµ·ããå¯èœæ§ããããæ éã«æ€èšããå¿ èŠããããŸãã
- æ§æç®¡çïŒç¹ã«å€§èŠæš¡ã§è€éãªç°å¢ã§ã¯ããµãŒãã¹ã¡ãã·ã¥ã®æ§æç®¡çãå°é£ã«ãªãå ŽåããããŸãã
- ã¢ãã¿ãªã³ã°ãšå¯èŠ³æž¬æ§ïŒãã©ãã£ãã¯ã·ã§ãŒãã³ã°ããªã·ãŒãæå³ãããšããã«æ©èœããŠããããšã確èªããããã«ã¯ã广çãªã¢ãã¿ãªã³ã°ãšå¯èŠ³æž¬æ§ãäžå¯æ¬ ã§ãã
- äºææ§ïŒãµãŒãã¹ã¡ãã·ã¥ãæ¢åã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããã³ã¢ããªã±ãŒã·ã§ã³ãšäºææ§ãããããšã確èªããŠãã ããã
- éå°èšèšïŒè€éããå©ç¹ãäžåãå Žåã¯ããµãŒãã¹ã¡ãã·ã¥ãå®è£ ããªãã§ãã ãããããŒãºãåºæ¬çãªå Žåã¯ãããã·ã³ãã«ãªãœãªã¥ãŒã·ã§ã³ããå§ããŠãã ããã
垯åå¹ å¶åŸ¡ãå®è£ ããããã®ãã¹ããã©ã¯ãã£ã¹
ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã§åž¯åå¹ å¶åŸ¡ãæåãããããã«ã¯ã次ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããïŒ
- å°ããå§ããïŒçµéšãç©ã¿ãã¢ãããŒããæ€èšŒããããã«ãå°èŠæš¡ãªãã€ããããããžã§ã¯ãããå§ããŸãã
- æç¢ºãªç®æšãå®çŸ©ããïŒåž¯åå¹ å¶åŸ¡ãå®è£ ããããã®ç®æšãšç®çãæç¢ºã«å®çŸ©ããŸãã
- ããã©ãŒãã³ã¹ãç£èŠããïŒã¢ããªã±ãŒã·ã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããã©ãŒãã³ã¹ãç¶ç¶çã«ç£èŠããŠãããã«ããã¯ãç¹å®ãããã©ãã£ãã¯ã·ã§ãŒãã³ã°ããªã·ãŒã®åœ±é¿ã枬å®ããŸãã
- æ§æãèªååããïŒãµãŒãã¹ã¡ãã·ã¥ã®æ§æãšãããã€ãèªååããŠããšã©ãŒã®ãªã¹ã¯ãæžãããå¹çãåäžãããŸãã
- æ§æç®¡çããŒã«ã䜿çšããïŒAnsibleãChefãPuppetãªã©ã®ããŒã«ã¯ããµãŒãã¹ã¡ãã·ã¥ã®æ§æã管çããã®ã«åœ¹ç«ã¡ãŸãã
- Infrastructure as Code (IaC) ãæ¡çšããïŒTerraformãCloudFormationãªã©ã®IaCããŒã«ã䜿çšããŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã宣èšçãªæ¹æ³ã§å®çŸ©ããã³ç®¡çããŸãã
- ã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ãå®è£ ããïŒäžæ£ã¢ã¯ã»ã¹ãé²ããæ©å¯ããŒã¿ãä¿è·ããããã«ããµãŒãã¹ã¡ãã·ã¥ãä¿è·ããŸãã
- äžå åãããæ§æãªããžããªã䜿çšããïŒãµãŒãã¹ã¡ãã·ã¥ã®æ§æãGitãªã©ã®äžå€®ãªããžããªã«ä¿åããŸãã
- éçºããŒã ãšéçšããŒã ãšååããïŒéçºããŒã ãšéçšããŒã ãã垯åå¹ å¶åŸ¡ã®ç®æšãšç®çã«ã€ããŠé£æºããŠããããšã確èªããŸãã
- å°åå·®ãèæ ®ããïŒããŸããŸãªãããã¯ãŒã¯æ¡ä»¶ãèæ ®ããŠããŠãŒã¶ãŒã®å°ççäœçœ®ã«åºã¥ããŠåž¯åå¹ å¶åŸ¡ããªã·ãŒã調æŽããŸãã
çµè«
ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã®ãã©ãã£ãã¯ã·ã§ãŒãã³ã°ãç¹ã«åž¯åå¹ å¶åŸ¡ã®å®è£ ã¯ã仿¥ã®è€éã§åæ£ããç°å¢ã«ãããŠãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæé©åããããã®åŒ·åãªæ¹æ³ãæäŸããŸãããã®èšäºã§æŠèª¬ããå©ç¹ã課é¡ãå®è£ æŠç¥ãæ éã«æ€èšããããšã§ãçµç¹ã¯ããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã®åãæŽ»çšããŠãäžçäžã®ãŠãŒã¶ãŒã«äžè²«æ§ã®ããä¿¡é Œæ§ã®é«ããšã¯ã¹ããªãšã³ã¹ãæäŸã§ããŸããå®è£ ãæåãããããã«ã¯ãã¢ãã¿ãªã³ã°ãèªååãã³ã©ãã¬ãŒã·ã§ã³ãåªå ããããšãå¿ããªãã§ãã ãããããã³ããšã³ãã¢ãŒããã¯ãã£ãé²åãç¶ããã«ã€ããŠãé©åã«ç®¡çãããããã³ããšã³ããµãŒãã¹ã¡ãã·ã¥ã¯ãã°ããŒãã«ãªèŠèŽè ã®èŠæ±ã«å¿ããé«å質ãªã¢ããªã±ãŒã·ã§ã³ãæäŸããäžã§äžå¯æ¬ ãšãªããŸãã